/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Georeferenciacion;

import entities.Construccion;
import java.util.Date;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import org.primefaces.event.map.OverlaySelectEvent;
import org.primefaces.model.map.DefaultMapModel;
import org.primefaces.model.map.LatLng;
import org.primefaces.model.map.MapModel;
import org.primefaces.model.map.Marker;
import persistence.ConstruccionJpaController;

/**
 *
 * @author Felipe Duarte
 */
@ManagedBean
@ViewScoped
public class GeorreferenciaConstrucciones {
    
    private MapModel geoModel;
    private Marker selectedConstruccion;
    private ConstruccionJpaController construccionJpaController=null;
    public Date fechaInicial, fechaFinal;
    public String nombreConstruccion;
    
    @PostConstruct
    private void  init(){
         initControllers();
         agregarConstrucciones();
    }
    
    
    public MapModel getGeoModel() {
        return geoModel;
    }

    public void setGeoModel(MapModel geoModel) {
        this.geoModel = geoModel;
    }

    public Marker getSelectedConstruccion() {
        return selectedConstruccion;
    }

    public void setSelectedConstruccion(Marker selectedConstruccion) {
        this.selectedConstruccion = selectedConstruccion;
    }

    

    public Date getFechaInicial() {
        return fechaInicial;
    }

    public void setFechaInicial(Date fechaInicial) {
        this.fechaInicial = fechaInicial;
    }

    public Date getFechaFinal() {
        return fechaFinal;
    }

    public void setFechaFinal(Date fechaFinal) {
        this.fechaFinal = fechaFinal;
    }

    public String getNombreConstruccion() {
        return nombreConstruccion;
    }

    public void setNombreConstruccion(String nombreConstruccion) {
        this.nombreConstruccion = nombreConstruccion;
    }
    
    private void limpiarCampos(){
     fechaFinal=null;
     fechaInicial=null;
     nombreConstruccion="";
    }
    
    public void overlaySelect(OverlaySelectEvent event) {
        limpiarCampos();
        selectedConstruccion = (Marker) event.getOverlay();
        Construccion construccion = (Construccion) selectedConstruccion.getData();
        
        nombreConstruccion = construccion.getNombreConstruccion();
        fechaFinal = construccion.getFechaFinalConstruccion();
        fechaInicial= construccion.getFechaInicialConstruccion();
    }
    
    
    public void agregarConstrucciones(){
        geoModel=new DefaultMapModel();
        
            if(construccionJpaController.findConstruccionCiudadActivasExternos()!=null&&!construccionJpaController.findConstruccionCiudadActivasExternos().isEmpty()){
                for(int j=0;j<construccionJpaController.findConstruccionEntities().size();j++){
                    Construccion construccion=construccionJpaController.findConstruccionEntities().get(j);
                    Marker markerEst=new Marker(new LatLng(construccion.getLatitudConstruccion(), construccion.getLongitudConstruccion()), 
                            construccion.getNombreConstruccion(),
                            construccion,"http://localhost:8080/TECHO-FFICE/resources/construccion.jpg");
                    geoModel.addOverlay(markerEst);
                }
            
        }        
    }
    
    
   //<editor-fold defaultstate="collapsed" desc="Inicializar los controladores">
    public void initControllers() {
        FacesContext context = FacesContext.getCurrentInstance();
        construccionJpaController = (ConstruccionJpaController) context.getELContext().getELResolver().getValue(context.getELContext(), null, "construccionJpaController");

    }
//</editor-fold>
}
